home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 50
/
Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso
/
Aminet
/
comm
/
irc
/
amirsay.lha
/
AmIRSay
/
mod.e
< prev
next >
Wrap
Text File
|
2002-02-11
|
3KB
|
149 lines
OPT MODULE
OPT PREPROCESS
MODULE 'dos/datetime','dos/dos',
'*loc','tools/file','b/bui',
'b/update'
EXPORT OBJECT lvo; ob1,ob2 ;ENDOBJECT
EXPORT OBJECT lv1; o ;ENDOBJECT
EXPORT ENUM ID_ABOUT=25,ID_ABOUTMUI
EXPORT DEF locReplace:PTR TO CHAR,locWith:PTR TO CHAR,locName:PTR TO CHAR,locVoice:PTR TO CHAR
EXPORT PROC news(s); DEF ns; ns:=String(StrLen(s)); StrCopy(ns,s); ENDPROC ns
EXPORT PROC findconfig(str,cn,def); DEF sp,ep,res
sp:=InStr(str,cn)
IF sp=-1 THEN RETURN def
sp:=sp+StrLen(cn)
ep:=InStr(str,' ',sp); IF ep=-1 THEN ep:=StrLen(str)
res:=String(ep-sp)
MidStr(res,str,sp,ep-sp)
ENDPROC res
EXPORT PROC newPrefs(prefs,vern,deftest); DEF c,o
IF c:=Open(prefs,NEWFILE)
o:=SetStdOut(c)
WriteF('\s\n',dateinfoline(vern))
WriteF('-l1 -d1 -p0 -a0 -s1\n')
WriteF('\s\n',deftest)
WriteF('[NMLTXT]\n')
WriteF('brb¿b right bak\n')
WriteF('ic¿i see\n')
WriteF('lol¿laughs outloud\n')
WriteF('oic¿oh i see\n')
WriteF('pc¿pile of crap\n')
WriteF('[BLANKS]\n')
WriteF('*\n')
WriteF('<\n')
WriteF('>\n')
WriteF('@\n')
WriteF('^\n')
WriteF('[VOICES]\n')
WriteF('Default¿-m -p121 -s261\n')
WriteF('Girl¿-f -p270 -s200\n')
WriteF('Man¿-m -p120 -s200\n')
WriteF('[PRVMSG]\n')
WriteF('PING\n')
WriteF('SOUND\n')
WriteF('[ANYTXT]\n')
WriteF('st lois¿saint lois\n')
WriteF('[CHANLS]\n')
WriteF('#Noisy\n')
SetStdOut(o)
Close(c)
ENDIF
ENDPROC
EXPORT PROC dispRWFunc(arr:PTR TO LONG,co=0:PTR TO lvo)
IF co; arr[]++ := co.ob1; arr[] := co.ob2
ELSE
arr[]++ := locReplace
arr[] := locWith
ENDIF
ENDPROC
EXPORT PROC disp1Func(arr:PTR TO LONG,l1=0:PTR TO lv1)
IF l1; arr[] := l1.o
ENDIF
ENDPROC
EXPORT PROC dispVFunc(arr:PTR TO LONG,co=0:PTR TO lvo)
IF co; arr[]++ := co.ob1; arr[] := co.ob2
ELSE
arr[]++ := locName
arr[] := locVoice
ENDIF
ENDPROC
EXPORT PROC cmpFunc(s1:PTR TO lv1,s2:PTR TO lv1) IS OstrCmp(s2.o,s1.o)
EXPORT PROC cmp2Func(s1:PTR TO lvo,s2:PTR TO lvo) IS OstrCmp(s2.ob1,s1.ob1)
EXPORT PROC uStrCmp(s1,s2) IS OstrCmp(s2,s1)
EXPORT PROC dateinfoline(vern);
DEF dt:datetime,ds:PTR TO datestamp,line, day[50]:ARRAY,date[50]:ARRAY,time[50]:ARRAY
line:=String(100)
ds:=DateStamp(dt.stamp)
dt.format:=FORMAT_DOS
dt.flags:=DTF_FUTURE
dt.strday:=day
dt.strdate:=date
dt.strtime:=time
IF DateToStr(dt)
StringF(line,'; Prefs for AmIRSay \s Saved \s (\s)',vern,date,time)
ENDIF
ENDPROC line
EXPORT PROC buildacclist(noaccent); DEF m,l,n,list,x,accl,str[256]:STRING
IF FileLength('locale:accents')=0
StringF(str,'echo >t:acclist "\e1\eb\s"\nlist locale:accents/#?.accent lformat %m >>t:acclist',noaccent)
Execute(str,0,0)
m,l:=readfile('t:acclist',"\n"); n:=countstrings(m,l)
list:=stringsinfile(m,l,n)
accl:=List(n+1)
FOR x:=0 TO n-1 DO ListAdd(accl,[news(ListItem(list,x))])
ListAdd(accl,[0])
DeleteFile('t:acclist')
freefile(m)
ELSE
accl:=List(1); ListAdd(accl,[news(noaccent)])
ENDIF
ENDPROC accl
EXPORT PROC reps(st,rep,with); DEF ps,rt,ts,v
ps:=0 ; v:=0
WHILE (ps:=InStr(st,rep,ps))<>-1 DO (v++) AND (ps++)
rt:=String(StrLen(st)+(v*StrLen(with)))
ts:=String(StrMax(rt))
StrCopy(rt,st)
ps:=0
WHILE ps>=0
ps:=InStr(rt,rep,ps)
IF ps<>-1
StrCopy(ts,rt,ps)
StrAdd(ts,with)
MidStr(rt,rt,ps+StrLen(rep))
StringF(rt,'\s\s',ts,rt)
ps:=ps+StrLen(with)
ELSE
ps:=-5
ENDIF
ENDWHILE
ENDPROC rt
EXPORT PROC uc(word) IS NEW[word[InStr(word,'_')+1]]:CHAR
EXPORT PROC lower(s); DEF ns; ns:=news(s); LowerStr(ns); ENDPROC ns